Ribbon Proofs for Separation Logic A verification pearl
نویسندگان
چکیده
We present ribbon proofs, a diagrammatic proof system for separation logic. Inspired by an eponymous system due to Bean, ribbon proofs emphasise the structure of a proof, so are intelligible and hence useful pedagogically. Because they contain less redundancy than proof outlines, and allow each proof step to be checked locally, they are highly scalable (and we illustrate this with a ribbon proof of the Version 7 Unix memory manager). Where proof outlines are cumbersome to modify, ribbon proofs can be visually manoeuvred to yield proofs of variant programs. This paper introduces the ribbon proof system, proves its soundness and completeness, and outlines a prototype tool for validating the diagrams in Isabelle.
منابع مشابه
Proof Pearl: Magic Wand as Frame
Separation logic is widely used to verify programs that manipulate pointers. It adds two connectives: separating conjunction ∗ (“star”) and its adjoint, separating implication −∗ (“magic wand”). Comparatively, separating conjunction is much more widely used. Many separation logic tools do not even support separating implication. Especially in interactive program verification or pen-paper proofs...
متن کاملCertificates and Separation Logic
Modular and local reasoning about object-oriented programs has been widely studied for programing languages such as C# and Java. Once source programs have been proven, the next verification challenge is to ensure that the code produced by the compiler is correct. Since verifying a compiler can be extremely complex, this paper uses proof-transforming compilation, an alternative approach which au...
متن کاملRibbon Proofs for Separation Logic
A program proof should not merely certify that a program is correct; it should explain why it is correct. A proof should be more than ‘true’: it should be informative, and it should be intelligible. Extending work by Bean [1], we introduce a system that produces readable program proofs that are highly scalable and easily modified. The de facto standard for presenting program proofs in Hoare log...
متن کاملRibbon tensorial logic A functorial bridge between proofs and knots
Tensorial logic is a primitive logic of tensor and negation which refines linear logic by relaxing the hypothesis that tensorial negation A 7→ ¬A is involutive. The resulting logic of linear continuations provides a proof-theoretic account of game semantics, where the formulas and proofs of the logic reflect univoquely dialogue games and innocent strategies. In the present paper, we introduce a...
متن کاملSemi-automatic Proofs about Object Graphs in Separation Logic
Published correctness proofs of garbage collectors in separation logic to date depend on extensive manual, interactive formula manipulations. This paper shows that the approach of symbolic execution in separation logic, as first developed by Smallfoot, also encompasses reasoning about object graphs given by the reachability of objects. This approach yields semi-automatic proofs of two central g...
متن کامل